using MediatR;
using Work.ErrorCode;

namespace Work.API.Applications.Write.Commands
{
    /// <summary>
    /// 创建检药单命令（用于查看检药单模块）
    /// 当患者缴费后，处方明细状态变为"已支付"，系统可以创建检药单
    /// </summary>
    public class CreateInspectionCommand : IRequest<ApiResult<int>>
    {
        /// <summary>
        /// 处方明细ID（必填，一个处方明细对应一个检药单）
        /// </summary>
        public int PrescriptionItemId { get; set; }

        /// <summary>
        /// 预约编号（必填，冗余字段）
        /// </summary>
        public int AppointmentId { get; set; }

        /// <summary>
        /// 患者ID（必填，冗余字段）
        /// </summary>
        public int PatientId { get; set; }

        /// <summary>
        /// 挂号编号（冗余字段）
        /// </summary>
        public string? RegistrationNum { get; set; }

        /// <summary>
        /// 患者姓名（冗余字段）
        /// </summary>
        public string? PatientName { get; set; }

        /// <summary>
        /// 卡号（冗余字段）
        /// </summary>
        public string? CardNumber { get; set; }

        /// <summary>
        /// 药品ID（可选，从处方明细中获取）
        /// </summary>
        public int? DrugId { get; set; }

        /// <summary>
        /// 药品名称（冗余字段）
        /// </summary>
        public string? DrugName { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remarks { get; set; }
    }
}

